1. Field of the Invention
The present invention relates to a MPEG-2 transport decoder, and more particularly, to a device and method for filtering added information, in which PSI (Program Specification Information) in a transport stream is processed in an MPEG-2 system layer.
2. Background of the Related Art
The MPEG-2, widely known as a moving picture compression method, has standards on a system layer for compression of an audio data, in addition to the moving picture data, and changing the moving picture data and the audio data suitable for transmission. The system layer has two systems, one is a TS (Transport Stream), and the other is a PS (Program Stream). While the PS system forms a pack by grouping a plurality of PES (Packetized Elementary Stream), reversely the TS system divides the PES for loading on a plurality of transport packets before transmission. That is, since the TS system transmits a plurality of video and audio individual bitstreams, the TS system requires information on selection of a program from a plurality of programs, and on selection of a packet, and on how to decode the packet, that is called as PSI (Program Specification Information). The PSI is transmitted by a packet having identification codes or a packet indicated by a primary PSI. In the MPEG-2 system layer, the PSI is one of elements in the TS. In decoding and reproduction of the TS, one of the plurality of programs should be selected, and PIDs (Packet IDentification numbers) of the transport packets of the individual bitstreams required for the decoding and reproduction of the program should be known. Then, parameter information or linkage information of the individual bitstreams should be known. In order to conduct the foregoing multistage operation, a plurality of added information tables are required, which are transmitted by a data structure called as sections. Of the plurality of tables, PAT (Program Association Table) is special information transmitted by a packet with PID=0. Every program number in the PAT has a description on elements of a relevant program, and particularly, has a PID of the transport packet which transmits a PMT (Program Map Table). The PMT describes a program PID, and a PID list and annex information of a transport packet which transmits individual video and audio bitstreams. In this instance, different from the PES which deals with ES (Elementary Stream), coded video or audio data, the PSI is provided with a redundancy for making fast access available since the PSI includes information on the program. That is, the PSI has identical information repeatedly for quick starting of decoding at any time. For example, standards of the ATSC (Advanced Television Systems Committee) requires transmission of information on PAT within at least 0.1 seconds, and on PMT within 0.4 seconds. That is, if the PAT is not available, there can be a problem in decoding since the information can not be identified as being a video or an audio. However, because there is no change in the information in most of the cases, information identical to the one transmitted before is transmitted. Accordingly, a general transport decoder has an algorithm for effective processing of such repeated data, one of which known widely is the section filtering defined in a DVB (Digital Video Broadcasting) standard. That is, the MPEG-2 has standards for four PSI tables each having a basic unit called a section, a combination of which forms one table. Information may be transmitted, with the information put in one section or a plurality of sections.
The sections have syntaxes of similar formats for convenience of hardware or software, of which, the following is a private section syntax.
private_section( ) {  table_idsection_syntax_indicatorprivate_indicatorreservedprivate_section_lengthif(section_syntax_indicator == ‘0’){    for(i=0; i<N; I++){      private_date_byte    }}else {    table_id_extension    reserved    version_number    current_next_indicator    section_number    last_section_number    for(i=0;i<private_section_length-9;      i++){      private_date_byte:    }    CRC_32  }}
In the section filtering, a filter is provided for several initial data bytes in a section for processing only sections each having a data at a particular position in the section which has the same value with a preset value. That is, a match data and a mask byte (or bit) are set up for data bytes at filtering positions, so that masked data only are compared to the match data, for storage in a designated position only when the masked data is the same with the match data.
FIG. 1 illustrates one example of an 8 byte section filter, wherein, in a case mask bit is ‘1’, a section data of a corresponding byte (or bit) is compared to a match data, for processing only sections which match the match data. ‘A’ type section filter in FIG. 1 illustrates a case when the mask is set up in bit units, and ‘B’ type section filter in FIG. 1 illustrates a case when the mask is set up in byte units. For example, it can be known that a comparison of data in the section ‘A’ in (a) in FIG. 1 to the match data in the ‘A’ type section filter with a mask bit of ‘1’ in (c) indicates that the two data are the same. In this case it is determined that the two data are matched, and the data in the section ‘A’ is received and stored in a designated position. In this instance, since the data in the section ‘A’ and the match data in the ‘B’ type sector filter with a mask byte of ‘1’ in (d) are not the same, the B type section filter does not receive the data in the section A. That is, it can be known that the section A in (a) and the A type section filter in (c) are matched, and the section B in (b) and the B type section filter in (d) are matched. Of PSI sections processed and transmitted thus, a desired PSI can be selected and processed. In fact, a DVB standard requires at least 32 section filters each with at least 8 bytes.
However, because such a section filtering requires a large amount of hardware, and a host sets up the filter directly, load on the host is great, and the host may miss sections to be processed or waste the filter due to a time period required for doing this. That is, since unnecessary portions of data, such as on section_lengths, unused bits, and etc., in FIG. 1 are masked for comparison, wastes of the hardware are resulted in.